package com.meteor.user.service;

import com.meteor.framework.mybatis.service.BaseService;
import com.meteor.user.entity.SysUserRole;

import java.util.List;

/**
 * 用户角色关系
 *
 * @author lynn
 * @date 2024/1/03
 */
public interface SysUserRoleService extends BaseService<SysUserRole> {

    /**
     * 保存或修改
     * @param userId      用户ID
     * @param roleIdList  角色ID列表
     */
    void saveOrUpdate(String userId, List<String> roleIdList);

    /**
     * 分配角色给用户列表
     * @param roleId      角色ID
     * @param userIdList  用户ID列表
     */
    void saveUserList(String roleId, List<String> userIdList);

    /**
     * 根据角色id列表，删除用户角色关系
     * @param roleIdList 角色id
     */
    void deleteByRoleIdList(List<String> roleIdList);

    /**
     * 根据用户id列表，删除用户角色关系
     * @param userIdList 用户id列表
     */
    void deleteByUserIdList(List<String> userIdList);

    /**
     * 根据角色id、用户id列表，删除用户角色关系
     * @param roleId 角色id
     * @param userIdList 用户id列表
     */
    void deleteByUserIdList(String roleId, List<String> userIdList);

    /**
     * 角色ID列表
     * @param userId  用户ID
     */
    List<String> getRoleIdList(String userId);
}